# -*- coding: UTF-8 -*-
"""
@File    ：5.多态特性.py
@Author  ：techPang
@Date    ：2025/2/6 16:14 
@Version ：1.0
"""


# 这是一个抽象类
class Animal:
    # 这是一个抽象方法(里面是空实现)
    def speak(self):
        pass


class Dog(Animal):
    def speak(self):
        print("汪汪汪")


class Cat(Animal):
    def speak(self):
        print("喵喵喵")


def make_noise(animal: Animal):
    animal.speak()


dog = Dog()
cat: Cat = Cat()
make_noise(dog)
make_noise(cat)


# 定义一个顶级抽象空调类，里面提供一些抽象方法
class AC:
    def cool_wind(self):
        pass

    def hot_wind(self):
        pass

    def swing_l_r(self):
        pass


# 美的空调继承空调类
class Midea_AC(AC):
    def cool_wind(self):
        print("美的-空调制冷")

    def hot_wind(self):
        print("美的-空调制热")

    def swing_l_r(self):
        print("美的-空调左右摆风")


# 格力空调
class GREE_AC(AC):
    def cool_wind(self):
        print("格力-空调制冷")

    def hot_wind(self):
        print("格力-空调制热")

    def swing_l_r(self):
        print("格力-空调左右摆风")


# 这里有一个制冷的需求，需要传递空调对象
def make_cool(ac: AC):
    ac.cool_wind()


midea = Midea_AC()
gree = GREE_AC()

make_cool(midea)
make_cool(gree)
